// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

package com.fowo.api.model.ship.plans;

import com.fowo.api.common.annotaion.DataObjectType;
import com.fowo.api.common.meta.MetaDataObject;
import com.fowo.api.common.meta.MetaDataObjects;
import com.fowo.api.common.model.PageSearch;
import com.fowo.api.common.mybatis.helper.PageSearchHelper;
import com.fowo.api.common.util.ListUtils;
import com.fowo.api.entity.ShipPlans;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

@DataObjectType(ShipPlans.class)
@Setter
@Getter
public class ShipPlansSearchParamPo extends PageSearch {

  private static MetaDataObject metaDataObject;

  @Override
  public void applySqlSegments() {
    if (metaDataObject == null) {
      metaDataObject =
        ListUtils.find(
          MetaDataObjects.getObjects(),
          o -> "ShipPlans".equals(o.getName())
        );
    }
    PageSearchHelper.fillSqlSegments(this, metaDataObject);
  }

  @Override
  public void initFinal() {
    super.initFinal();
    applySqlSegments();
  }

  /**
   * 获取关联字段的查询表别名信息
   */
  @Override
  public Map<String, String> getJoinFieldTableAliasMap() {
    Map<String, String> map = new HashMap<>();
    map.put("shopId", "si");
    map.put("createUser", "su");
    return map;
  }

  @Override
  public Map<String, OptionalJoinField> getOptionalJoinFields() {
    Map<String, OptionalJoinField> map = new HashMap<>();
    map.put(
      "productList.deliveryWarehouseId",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN ship_plans_sub AS RO_1 ON RO_1.del_flag = 0 AND RO_1.parent_ship_plans = t.id"
        )
        .setTableAlias("RO_1")
        .setColumnName("delivery_warehouse_id")
        .setNeedGroupBy(true)
    );
    map.put(
      "productList.typeOfShipping",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN ship_plans_sub AS RO_2 ON RO_2.del_flag = 0 AND RO_2.parent_ship_plans = t.id"
        )
        .setTableAlias("RO_2")
        .setColumnName("type_of_shipping")
        .setNeedGroupBy(true)
    );
    map.put(
      "productList.logisticsBusinessId",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN ship_plans_sub AS RO_3 ON RO_3.del_flag = 0 AND RO_3.parent_ship_plans = t.id"
        )
        .setTableAlias("RO_3")
        .setColumnName("logistics_business_id")
        .setNeedGroupBy(true)
    );
    map.put(
      "productList.logisticsChannel",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN ship_plans_sub AS RO_4 ON RO_4.del_flag = 0 AND RO_4.parent_ship_plans = t.id"
        )
        .setTableAlias("RO_4")
        .setColumnName("logistics_channel")
        .setNeedGroupBy(true)
    );
    map.put(
      "productList.msku",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN ship_plans_sub AS RO_5 ON RO_5.del_flag = 0 AND RO_5.parent_ship_plans = t.id"
        )
        .setTableAlias("RO_5")
        .setColumnName("msku")
        .setNeedGroupBy(true)
    );
    map.put(
      "productList.fnsku",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN ship_plans_sub AS RO_6 ON RO_6.del_flag = 0 AND RO_6.parent_ship_plans = t.id"
        )
        .setTableAlias("RO_6")
        .setColumnName("fnsku")
        .setNeedGroupBy(true)
    );
    map.put(
      "productList.orderSn",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN ship_plans_sub AS RO_7 ON RO_7.del_flag = 0 AND RO_7.parent_ship_plans = t.id"
        )
        .setTableAlias("RO_7")
        .setColumnName("order_sn")
        .setNeedGroupBy(true)
    );
    map.put(
      "productList.sku",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN ship_plans_sub AS RO_8 ON RO_8.del_flag = 0 AND RO_8.parent_ship_plans = t.id"
        )
        .setTableAlias("RO_8")
        .setColumnName("sku")
        .setNeedGroupBy(true)
    );
    map.put(
      "productList.productId",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN ship_plans_sub AS RO_9 ON RO_9.del_flag = 0 AND RO_9.parent_ship_plans = t.id"
        )
        .setTableAlias("RO_9")
        .setColumnName("product_id")
        .setNeedGroupBy(true)
    );
    map.put(
      "productList.productId.name",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN product AS RO_10 ON RO_10.del_flag = 0 AND RO_10.id = RO_9.product_id"
        )
        .setTableAlias("RO_10")
        .setColumnName("name")
        .setDepends(Collections.singletonList("productList.productId"))
    );
    map.put(
      "productList.shopId",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN ship_plans_sub AS RO_11 ON RO_11.del_flag = 0 AND RO_11.parent_ship_plans = t.id"
        )
        .setTableAlias("RO_11")
        .setColumnName("shop_id")
        .setNeedGroupBy(true)
    );
    map.put(
      "productList.productId.sku",
      new OptionalJoinField()
        .setJoinPart(
          "LEFT JOIN product AS RO_12 ON RO_12.del_flag = 0 AND RO_12.id = RO_9.product_id"
        )
        .setTableAlias("RO_12")
        .setColumnName("sku")
        .setDepends(Collections.singletonList("productList.productId"))
    );

    return map;
  }

  private Long productList_deliveryWarehouseId;
  private List<String> productList_deliveryWarehouseIdInList;
  private String productList_typeOfShipping;
  private List<String> productList_typeOfShippingInList;
  private Long productList_logisticsBusinessId;
  private List<String> productList_logisticsBusinessIdInList;
  private Long productList_logisticsChannel;
  private List<String> productList_logisticsChannelInList;
  private String productList_msku;
  private List<String> productList_mskuInList;
  private String productList_fnsku;
  private List<String> productList_fnskuInList;
  private String productList_orderSn;
  private List<String> productList_orderSnInList;
  private String productList_sku;
  private List<String> productList_skuInList;
  private String productList_productId_name;
  private List<String> productList_productId_nameInList;
  private Long productList_shopId;
  private List<String> productList_shopIdInList;
  private String productList_productId_sku;
  private List<String> productList_productId_skuInList;

  /**
   * 指定使用特定的视图过滤条件
   * <p>
   * 有效值包括：ShipPlans/Entire, ShipPlans/Pending, ShipPlans/Processed, ShipPlans/JNJ
   * </p>
   */
  private String byViewName;

  /**
   * 编号
   */
  private Long id;

  /**
   * 最小编号
   */
  private Long idMin;

  /**
   * 最大编号
   */
  private Long idMax;

  /**
   * 编号 比较(eq)
   */
  private Long idEq;
  /**
   * 编号 比较(neq)
   */
  private Long idNeq;
  /**
   * 编号 比较(gt)
   */
  private Long idGt;
  /**
   * 编号 比较(gte)
   */
  private Long idGte;
  /**
   * 编号 比较(lt)
   */
  private Long idLt;
  /**
   * 编号 比较(lte)
   */
  private Long idLte;
  /**
   * 编号 比较(contains)
   */
  private Long idContains;
  /**
   * 编号 比较(notcontains)
   */
  private Long idNotcontains;
  /**
   * 编号 比较(startswith)
   */
  private Long idStartswith;
  /**
   * 编号 比较(endswith)
   */
  private Long idEndswith;
  /**
   * 编号 比较(isnull)
   */
  private Boolean idIsnull;
  /**
   * 编号 比较(isnotnull)
   */
  private Boolean idIsnotnull;

  /**
   * 目的仓类型
   */
  private String warehouseType;

  /**
   * 目的仓类型 比较(eq)
   */
  private String warehouseTypeEq;
  /**
   * 目的仓类型 比较(neq)
   */
  private String warehouseTypeNeq;
  /**
   * 目的仓类型 比较(gt)
   */
  private String warehouseTypeGt;
  /**
   * 目的仓类型 比较(gte)
   */
  private String warehouseTypeGte;
  /**
   * 目的仓类型 比较(lt)
   */
  private String warehouseTypeLt;
  /**
   * 目的仓类型 比较(lte)
   */
  private String warehouseTypeLte;
  /**
   * 目的仓类型 比较(contains)
   */
  private String warehouseTypeContains;
  /**
   * 目的仓类型 比较(notcontains)
   */
  private String warehouseTypeNotcontains;
  /**
   * 目的仓类型 比较(startswith)
   */
  private String warehouseTypeStartswith;
  /**
   * 目的仓类型 比较(endswith)
   */
  private String warehouseTypeEndswith;
  /**
   * 目的仓类型 比较(isnull)
   */
  private Boolean warehouseTypeIsnull;
  /**
   * 目的仓类型 比较(isnotnull)
   */
  private Boolean warehouseTypeIsnotnull;

  /**
   * 目的仓类型(精确搜索)
   */
  private List<String> warehouseTypeInList;

  /**
   * 是否有 附件
   */
  private Boolean files;

  /**
   * 创建批次号(模糊搜索)
   */
  private String createBatchNumber;

  /**
   * 创建批次号 比较(eq)
   */
  private String createBatchNumberEq;
  /**
   * 创建批次号 比较(neq)
   */
  private String createBatchNumberNeq;
  /**
   * 创建批次号 比较(gt)
   */
  private String createBatchNumberGt;
  /**
   * 创建批次号 比较(gte)
   */
  private String createBatchNumberGte;
  /**
   * 创建批次号 比较(lt)
   */
  private String createBatchNumberLt;
  /**
   * 创建批次号 比较(lte)
   */
  private String createBatchNumberLte;
  /**
   * 创建批次号 比较(contains)
   */
  private String createBatchNumberContains;
  /**
   * 创建批次号 比较(notcontains)
   */
  private String createBatchNumberNotcontains;
  /**
   * 创建批次号 比较(startswith)
   */
  private String createBatchNumberStartswith;
  /**
   * 创建批次号 比较(endswith)
   */
  private String createBatchNumberEndswith;
  /**
   * 创建批次号 比较(isnull)
   */
  private Boolean createBatchNumberIsnull;
  /**
   * 创建批次号 比较(isnotnull)
   */
  private Boolean createBatchNumberIsnotnull;

  /**
   * 创建批次号(精确搜索)
   */
  private List<String> createBatchNumberInList;

  /**
   * 店铺
   */
  private Long shopId;

  /**
   * 店铺 比较(eq)
   */
  private Long shopIdEq;
  /**
   * 店铺 比较(neq)
   */
  private Long shopIdNeq;
  /**
   * 店铺 比较(gt)
   */
  private Long shopIdGt;
  /**
   * 店铺 比较(gte)
   */
  private Long shopIdGte;
  /**
   * 店铺 比较(lt)
   */
  private Long shopIdLt;
  /**
   * 店铺 比较(lte)
   */
  private Long shopIdLte;
  /**
   * 店铺 比较(contains)
   */
  private Long shopIdContains;
  /**
   * 店铺 比较(notcontains)
   */
  private Long shopIdNotcontains;
  /**
   * 店铺 比较(startswith)
   */
  private Long shopIdStartswith;
  /**
   * 店铺 比较(endswith)
   */
  private Long shopIdEndswith;
  /**
   * 店铺 比较(isnull)
   */
  private Boolean shopIdIsnull;
  /**
   * 店铺 比较(isnotnull)
   */
  private Boolean shopIdIsnotnull;
  /**
   * 店铺的名称 比较(eq)
   */
  private String shopIdShopNameEq;
  /**
   * 店铺的名称 比较(neq)
   */
  private String shopIdShopNameNeq;
  /**
   * 店铺的名称 比较(gt)
   */
  private String shopIdShopNameGt;
  /**
   * 店铺的名称 比较(gte)
   */
  private String shopIdShopNameGte;
  /**
   * 店铺的名称 比较(lt)
   */
  private String shopIdShopNameLt;
  /**
   * 店铺的名称 比较(lte)
   */
  private String shopIdShopNameLte;
  /**
   * 店铺的名称 比较(contains)
   */
  private String shopIdShopNameContains;
  /**
   * 店铺的名称 比较(notcontains)
   */
  private String shopIdShopNameNotcontains;
  /**
   * 店铺的名称 比较(startswith)
   */
  private String shopIdShopNameStartswith;
  /**
   * 店铺的名称 比较(endswith)
   */
  private String shopIdShopNameEndswith;
  /**
   * 店铺的名称 比较(isnull)
   */
  private Boolean shopIdShopNameIsnull;
  /**
   * 店铺的名称 比较(isnotnull)
   */
  private Boolean shopIdShopNameIsnotnull;

  /**
   * 店铺(范围搜索)
   */
  private List<Long> shopIdInList;

  /**
   * 最早发货时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date deliveryTimeStart;

  /**
   * 最晚发货时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date deliveryTimeEnd;

  /**
   * 发货时间 比较(eq)
   */
  private Date deliveryTimeEq;
  /**
   * 发货时间 比较(neq)
   */
  private Date deliveryTimeNeq;
  /**
   * 发货时间 比较(gt)
   */
  private Date deliveryTimeGt;
  /**
   * 发货时间 比较(gte)
   */
  private Date deliveryTimeGte;
  /**
   * 发货时间 比较(lt)
   */
  private Date deliveryTimeLt;
  /**
   * 发货时间 比较(lte)
   */
  private Date deliveryTimeLte;
  /**
   * 发货时间 比较(contains)
   */
  private Date deliveryTimeContains;
  /**
   * 发货时间 比较(notcontains)
   */
  private Date deliveryTimeNotcontains;
  /**
   * 发货时间 比较(startswith)
   */
  private Date deliveryTimeStartswith;
  /**
   * 发货时间 比较(endswith)
   */
  private Date deliveryTimeEndswith;
  /**
   * 发货时间 比较(isnull)
   */
  private Boolean deliveryTimeIsnull;
  /**
   * 发货时间 比较(isnotnull)
   */
  private Boolean deliveryTimeIsnotnull;

  /**
   * 创建人
   */
  private Long createUser;

  /**
   * 创建人 比较(eq)
   */
  private Long createUserEq;
  /**
   * 创建人 比较(neq)
   */
  private Long createUserNeq;
  /**
   * 创建人 比较(gt)
   */
  private Long createUserGt;
  /**
   * 创建人 比较(gte)
   */
  private Long createUserGte;
  /**
   * 创建人 比较(lt)
   */
  private Long createUserLt;
  /**
   * 创建人 比较(lte)
   */
  private Long createUserLte;
  /**
   * 创建人 比较(contains)
   */
  private Long createUserContains;
  /**
   * 创建人 比较(notcontains)
   */
  private Long createUserNotcontains;
  /**
   * 创建人 比较(startswith)
   */
  private Long createUserStartswith;
  /**
   * 创建人 比较(endswith)
   */
  private Long createUserEndswith;
  /**
   * 创建人 比较(isnull)
   */
  private Boolean createUserIsnull;
  /**
   * 创建人 比较(isnotnull)
   */
  private Boolean createUserIsnotnull;
  /**
   * 创建人的显示用户名 比较(eq)
   */
  private String createUserNameEq;
  /**
   * 创建人的显示用户名 比较(neq)
   */
  private String createUserNameNeq;
  /**
   * 创建人的显示用户名 比较(gt)
   */
  private String createUserNameGt;
  /**
   * 创建人的显示用户名 比较(gte)
   */
  private String createUserNameGte;
  /**
   * 创建人的显示用户名 比较(lt)
   */
  private String createUserNameLt;
  /**
   * 创建人的显示用户名 比较(lte)
   */
  private String createUserNameLte;
  /**
   * 创建人的显示用户名 比较(contains)
   */
  private String createUserNameContains;
  /**
   * 创建人的显示用户名 比较(notcontains)
   */
  private String createUserNameNotcontains;
  /**
   * 创建人的显示用户名 比较(startswith)
   */
  private String createUserNameStartswith;
  /**
   * 创建人的显示用户名 比较(endswith)
   */
  private String createUserNameEndswith;
  /**
   * 创建人的显示用户名 比较(isnull)
   */
  private Boolean createUserNameIsnull;
  /**
   * 创建人的显示用户名 比较(isnotnull)
   */
  private Boolean createUserNameIsnotnull;

  /**
   * 创建人(范围搜索)
   */
  private List<Long> createUserInList;

  /**
   * 最早创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeStart;

  /**
   * 最晚创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeEnd;

  /**
   * 创建时间 比较(eq)
   */
  private Date createTimeEq;
  /**
   * 创建时间 比较(neq)
   */
  private Date createTimeNeq;
  /**
   * 创建时间 比较(gt)
   */
  private Date createTimeGt;
  /**
   * 创建时间 比较(gte)
   */
  private Date createTimeGte;
  /**
   * 创建时间 比较(lt)
   */
  private Date createTimeLt;
  /**
   * 创建时间 比较(lte)
   */
  private Date createTimeLte;
  /**
   * 创建时间 比较(contains)
   */
  private Date createTimeContains;
  /**
   * 创建时间 比较(notcontains)
   */
  private Date createTimeNotcontains;
  /**
   * 创建时间 比较(startswith)
   */
  private Date createTimeStartswith;
  /**
   * 创建时间 比较(endswith)
   */
  private Date createTimeEndswith;
  /**
   * 创建时间 比较(isnull)
   */
  private Boolean createTimeIsnull;
  /**
   * 创建时间 比较(isnotnull)
   */
  private Boolean createTimeIsnotnull;

  /**
   * 包装类型
   */
  private String packingType;

  /**
   * 包装类型 比较(eq)
   */
  private String packingTypeEq;
  /**
   * 包装类型 比较(neq)
   */
  private String packingTypeNeq;
  /**
   * 包装类型 比较(gt)
   */
  private String packingTypeGt;
  /**
   * 包装类型 比较(gte)
   */
  private String packingTypeGte;
  /**
   * 包装类型 比较(lt)
   */
  private String packingTypeLt;
  /**
   * 包装类型 比较(lte)
   */
  private String packingTypeLte;
  /**
   * 包装类型 比较(contains)
   */
  private String packingTypeContains;
  /**
   * 包装类型 比较(notcontains)
   */
  private String packingTypeNotcontains;
  /**
   * 包装类型 比较(startswith)
   */
  private String packingTypeStartswith;
  /**
   * 包装类型 比较(endswith)
   */
  private String packingTypeEndswith;
  /**
   * 包装类型 比较(isnull)
   */
  private Boolean packingTypeIsnull;
  /**
   * 包装类型 比较(isnotnull)
   */
  private Boolean packingTypeIsnotnull;

  /**
   * 包装类型(精确搜索)
   */
  private List<String> packingTypeInList;

  /**
   * 批次备注(模糊搜索)
   */
  private String remarks;

  /**
   * 批次备注 比较(eq)
   */
  private String remarksEq;
  /**
   * 批次备注 比较(neq)
   */
  private String remarksNeq;
  /**
   * 批次备注 比较(gt)
   */
  private String remarksGt;
  /**
   * 批次备注 比较(gte)
   */
  private String remarksGte;
  /**
   * 批次备注 比较(lt)
   */
  private String remarksLt;
  /**
   * 批次备注 比较(lte)
   */
  private String remarksLte;
  /**
   * 批次备注 比较(contains)
   */
  private String remarksContains;
  /**
   * 批次备注 比较(notcontains)
   */
  private String remarksNotcontains;
  /**
   * 批次备注 比较(startswith)
   */
  private String remarksStartswith;
  /**
   * 批次备注 比较(endswith)
   */
  private String remarksEndswith;
  /**
   * 批次备注 比较(isnull)
   */
  private Boolean remarksIsnull;
  /**
   * 批次备注 比较(isnotnull)
   */
  private Boolean remarksIsnotnull;

  /**
   * 批次备注(精确搜索)
   */
  private List<String> remarksInList;

  /**
   * 状态
   */
  private String status;

  /**
   * 状态 比较(eq)
   */
  private String statusEq;
  /**
   * 状态 比较(neq)
   */
  private String statusNeq;
  /**
   * 状态 比较(gt)
   */
  private String statusGt;
  /**
   * 状态 比较(gte)
   */
  private String statusGte;
  /**
   * 状态 比较(lt)
   */
  private String statusLt;
  /**
   * 状态 比较(lte)
   */
  private String statusLte;
  /**
   * 状态 比较(contains)
   */
  private String statusContains;
  /**
   * 状态 比较(notcontains)
   */
  private String statusNotcontains;
  /**
   * 状态 比较(startswith)
   */
  private String statusStartswith;
  /**
   * 状态 比较(endswith)
   */
  private String statusEndswith;
  /**
   * 状态 比较(isnull)
   */
  private Boolean statusIsnull;
  /**
   * 状态 比较(isnotnull)
   */
  private Boolean statusIsnotnull;

  /**
   * 状态(精确搜索)
   */
  private List<String> statusInList;

  /**
   * 最早更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeStart;

  /**
   * 最晚更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeEnd;

  /**
   * 更新时间 比较(eq)
   */
  private Date lastUpdateTimeEq;
  /**
   * 更新时间 比较(neq)
   */
  private Date lastUpdateTimeNeq;
  /**
   * 更新时间 比较(gt)
   */
  private Date lastUpdateTimeGt;
  /**
   * 更新时间 比较(gte)
   */
  private Date lastUpdateTimeGte;
  /**
   * 更新时间 比较(lt)
   */
  private Date lastUpdateTimeLt;
  /**
   * 更新时间 比较(lte)
   */
  private Date lastUpdateTimeLte;
  /**
   * 更新时间 比较(contains)
   */
  private Date lastUpdateTimeContains;
  /**
   * 更新时间 比较(notcontains)
   */
  private Date lastUpdateTimeNotcontains;
  /**
   * 更新时间 比较(startswith)
   */
  private Date lastUpdateTimeStartswith;
  /**
   * 更新时间 比较(endswith)
   */
  private Date lastUpdateTimeEndswith;
  /**
   * 更新时间 比较(isnull)
   */
  private Boolean lastUpdateTimeIsnull;
  /**
   * 更新时间 比较(isnotnull)
   */
  private Boolean lastUpdateTimeIsnotnull;

  /**
   * 更新人
   */
  private Long lastUpdateUser;

  /**
   * 最小更新人
   */
  private Long lastUpdateUserMin;

  /**
   * 最大更新人
   */
  private Long lastUpdateUserMax;

  /**
   * 更新人 比较(eq)
   */
  private Long lastUpdateUserEq;
  /**
   * 更新人 比较(neq)
   */
  private Long lastUpdateUserNeq;
  /**
   * 更新人 比较(gt)
   */
  private Long lastUpdateUserGt;
  /**
   * 更新人 比较(gte)
   */
  private Long lastUpdateUserGte;
  /**
   * 更新人 比较(lt)
   */
  private Long lastUpdateUserLt;
  /**
   * 更新人 比较(lte)
   */
  private Long lastUpdateUserLte;
  /**
   * 更新人 比较(contains)
   */
  private Long lastUpdateUserContains;
  /**
   * 更新人 比较(notcontains)
   */
  private Long lastUpdateUserNotcontains;
  /**
   * 更新人 比较(startswith)
   */
  private Long lastUpdateUserStartswith;
  /**
   * 更新人 比较(endswith)
   */
  private Long lastUpdateUserEndswith;
  /**
   * 更新人 比较(isnull)
   */
  private Boolean lastUpdateUserIsnull;
  /**
   * 更新人 比较(isnotnull)
   */
  private Boolean lastUpdateUserIsnotnull;

  /**
   * 箱数
   */
  private Long quantity;

  /**
   * 最小箱数
   */
  private Long quantityMin;

  /**
   * 最大箱数
   */
  private Long quantityMax;

  /**
   * 箱数 比较(eq)
   */
  private Long quantityEq;
  /**
   * 箱数 比较(neq)
   */
  private Long quantityNeq;
  /**
   * 箱数 比较(gt)
   */
  private Long quantityGt;
  /**
   * 箱数 比较(gte)
   */
  private Long quantityGte;
  /**
   * 箱数 比较(lt)
   */
  private Long quantityLt;
  /**
   * 箱数 比较(lte)
   */
  private Long quantityLte;
  /**
   * 箱数 比较(contains)
   */
  private Long quantityContains;
  /**
   * 箱数 比较(notcontains)
   */
  private Long quantityNotcontains;
  /**
   * 箱数 比较(startswith)
   */
  private Long quantityStartswith;
  /**
   * 箱数 比较(endswith)
   */
  private Long quantityEndswith;
  /**
   * 箱数 比较(isnull)
   */
  private Boolean quantityIsnull;
  /**
   * 箱数 比较(isnotnull)
   */
  private Boolean quantityIsnotnull;

  /**
   * CBM(m2)
   */
  private java.math.BigDecimal cbm;

  /**
   * 最小CBM(m2)
   */
  private java.math.BigDecimal cbmMin;

  /**
   * 最大CBM(m2)
   */
  private java.math.BigDecimal cbmMax;

  /**
   * CBM(m2) 比较(eq)
   */
  private java.math.BigDecimal cbmEq;
  /**
   * CBM(m2) 比较(neq)
   */
  private java.math.BigDecimal cbmNeq;
  /**
   * CBM(m2) 比较(gt)
   */
  private java.math.BigDecimal cbmGt;
  /**
   * CBM(m2) 比较(gte)
   */
  private java.math.BigDecimal cbmGte;
  /**
   * CBM(m2) 比较(lt)
   */
  private java.math.BigDecimal cbmLt;
  /**
   * CBM(m2) 比较(lte)
   */
  private java.math.BigDecimal cbmLte;
  /**
   * CBM(m2) 比较(contains)
   */
  private java.math.BigDecimal cbmContains;
  /**
   * CBM(m2) 比较(notcontains)
   */
  private java.math.BigDecimal cbmNotcontains;
  /**
   * CBM(m2) 比较(startswith)
   */
  private java.math.BigDecimal cbmStartswith;
  /**
   * CBM(m2) 比较(endswith)
   */
  private java.math.BigDecimal cbmEndswith;
  /**
   * CBM(m2) 比较(isnull)
   */
  private Boolean cbmIsnull;
  /**
   * CBM(m2) 比较(isnotnull)
   */
  private Boolean cbmIsnotnull;

  /**
   * 体积重(kg)
   */
  private java.math.BigDecimal volumeweight;

  /**
   * 最小体积重(kg)
   */
  private java.math.BigDecimal volumeweightMin;

  /**
   * 最大体积重(kg)
   */
  private java.math.BigDecimal volumeweightMax;

  /**
   * 体积重(kg) 比较(eq)
   */
  private java.math.BigDecimal volumeweightEq;
  /**
   * 体积重(kg) 比较(neq)
   */
  private java.math.BigDecimal volumeweightNeq;
  /**
   * 体积重(kg) 比较(gt)
   */
  private java.math.BigDecimal volumeweightGt;
  /**
   * 体积重(kg) 比较(gte)
   */
  private java.math.BigDecimal volumeweightGte;
  /**
   * 体积重(kg) 比较(lt)
   */
  private java.math.BigDecimal volumeweightLt;
  /**
   * 体积重(kg) 比较(lte)
   */
  private java.math.BigDecimal volumeweightLte;
  /**
   * 体积重(kg) 比较(contains)
   */
  private java.math.BigDecimal volumeweightContains;
  /**
   * 体积重(kg) 比较(notcontains)
   */
  private java.math.BigDecimal volumeweightNotcontains;
  /**
   * 体积重(kg) 比较(startswith)
   */
  private java.math.BigDecimal volumeweightStartswith;
  /**
   * 体积重(kg) 比较(endswith)
   */
  private java.math.BigDecimal volumeweightEndswith;
  /**
   * 体积重(kg) 比较(isnull)
   */
  private Boolean volumeweightIsnull;
  /**
   * 体积重(kg) 比较(isnotnull)
   */
  private Boolean volumeweightIsnotnull;

  /**
   * 总净重(g)
   */
  private java.math.BigDecimal itemweight;

  /**
   * 最小总净重(g)
   */
  private java.math.BigDecimal itemweightMin;

  /**
   * 最大总净重(g)
   */
  private java.math.BigDecimal itemweightMax;

  /**
   * 总净重(g) 比较(eq)
   */
  private java.math.BigDecimal itemweightEq;
  /**
   * 总净重(g) 比较(neq)
   */
  private java.math.BigDecimal itemweightNeq;
  /**
   * 总净重(g) 比较(gt)
   */
  private java.math.BigDecimal itemweightGt;
  /**
   * 总净重(g) 比较(gte)
   */
  private java.math.BigDecimal itemweightGte;
  /**
   * 总净重(g) 比较(lt)
   */
  private java.math.BigDecimal itemweightLt;
  /**
   * 总净重(g) 比较(lte)
   */
  private java.math.BigDecimal itemweightLte;
  /**
   * 总净重(g) 比较(contains)
   */
  private java.math.BigDecimal itemweightContains;
  /**
   * 总净重(g) 比较(notcontains)
   */
  private java.math.BigDecimal itemweightNotcontains;
  /**
   * 总净重(g) 比较(startswith)
   */
  private java.math.BigDecimal itemweightStartswith;
  /**
   * 总净重(g) 比较(endswith)
   */
  private java.math.BigDecimal itemweightEndswith;
  /**
   * 总净重(g) 比较(isnull)
   */
  private Boolean itemweightIsnull;
  /**
   * 总净重(g) 比较(isnotnull)
   */
  private Boolean itemweightIsnotnull;

  /**
   * 总毛重(g)
   */
  private java.math.BigDecimal itemgrossweight;

  /**
   * 最小总毛重(g)
   */
  private java.math.BigDecimal itemgrossweightMin;

  /**
   * 最大总毛重(g)
   */
  private java.math.BigDecimal itemgrossweightMax;

  /**
   * 总毛重(g) 比较(eq)
   */
  private java.math.BigDecimal itemgrossweightEq;
  /**
   * 总毛重(g) 比较(neq)
   */
  private java.math.BigDecimal itemgrossweightNeq;
  /**
   * 总毛重(g) 比较(gt)
   */
  private java.math.BigDecimal itemgrossweightGt;
  /**
   * 总毛重(g) 比较(gte)
   */
  private java.math.BigDecimal itemgrossweightGte;
  /**
   * 总毛重(g) 比较(lt)
   */
  private java.math.BigDecimal itemgrossweightLt;
  /**
   * 总毛重(g) 比较(lte)
   */
  private java.math.BigDecimal itemgrossweightLte;
  /**
   * 总毛重(g) 比较(contains)
   */
  private java.math.BigDecimal itemgrossweightContains;
  /**
   * 总毛重(g) 比较(notcontains)
   */
  private java.math.BigDecimal itemgrossweightNotcontains;
  /**
   * 总毛重(g) 比较(startswith)
   */
  private java.math.BigDecimal itemgrossweightStartswith;
  /**
   * 总毛重(g) 比较(endswith)
   */
  private java.math.BigDecimal itemgrossweightEndswith;
  /**
   * 总毛重(g) 比较(isnull)
   */
  private Boolean itemgrossweightIsnull;
  /**
   * 总毛重(g) 比较(isnotnull)
   */
  private Boolean itemgrossweightIsnotnull;

  /**
   * 计划发货量
   */
  private Long plannedShipment;

  /**
   * 最小计划发货量
   */
  private Long plannedShipmentMin;

  /**
   * 最大计划发货量
   */
  private Long plannedShipmentMax;

  /**
   * 计划发货量 比较(eq)
   */
  private Long plannedShipmentEq;
  /**
   * 计划发货量 比较(neq)
   */
  private Long plannedShipmentNeq;
  /**
   * 计划发货量 比较(gt)
   */
  private Long plannedShipmentGt;
  /**
   * 计划发货量 比较(gte)
   */
  private Long plannedShipmentGte;
  /**
   * 计划发货量 比较(lt)
   */
  private Long plannedShipmentLt;
  /**
   * 计划发货量 比较(lte)
   */
  private Long plannedShipmentLte;
  /**
   * 计划发货量 比较(contains)
   */
  private Long plannedShipmentContains;
  /**
   * 计划发货量 比较(notcontains)
   */
  private Long plannedShipmentNotcontains;
  /**
   * 计划发货量 比较(startswith)
   */
  private Long plannedShipmentStartswith;
  /**
   * 计划发货量 比较(endswith)
   */
  private Long plannedShipmentEndswith;
  /**
   * 计划发货量 比较(isnull)
   */
  private Boolean plannedShipmentIsnull;
  /**
   * 计划发货量 比较(isnotnull)
   */
  private Boolean plannedShipmentIsnotnull;

  /**
   * 表单名称
   */
  private String formName;

  /**
   * 工作流状态
   */
  private Integer wfStatus;
}
